home *** CD-ROM | disk | FTP | other *** search
/ The Amiga Classic Collection / The Amiga Classic Collection - Disc 1.iso / Education / ED16-CrosswordCreator.DMS / ED16-CrosswordCreator.adf / Source / CPCPrint.mod < prev    next >
Text File  |  1991-07-13  |  3KB  |  156 lines

  1. IMPLEMENTATION MODULE CPCPrint;
  2.  
  3.  
  4.  
  5. IMPORT ASCII;
  6. IMPORT CPCMenu;
  7. IMPORT CPCGlobal;
  8. IMPORT CrossFont;
  9. IMPORT GraphicsD,GraphicsL;
  10. IMPORT IntuiIO;
  11. IMPORT IntuitionD,IntuitionL;
  12. IMPORT String;
  13. IMPORT SYSTEM;
  14.  
  15.  
  16.  
  17. CONST
  18.  xsize=8;
  19.  ysize=8;
  20.  spcs="                                                                 ";
  21.  
  22.  smallxsize=7;
  23.  smallysize=6;
  24.  
  25.  
  26.  
  27. VAR
  28.  crossfont: GraphicsD.TextFontPtr;
  29.  initialized: BOOLEAN;
  30.  cursorx,cursory: INTEGER;
  31.  
  32.  
  33.  
  34. PROCEDURE Print(a: ARRAY OF CHAR; n: INTEGER);
  35.  BEGIN
  36.   GraphicsL.SetFont(CPCGlobal.rastport,CPCGlobal.topaz);
  37.   IntuiIO.Print(CPCGlobal.window,a,cursorx*xsize,cursory*ysize+CPCGlobal.yoff);
  38.   cursory:=cursory+n;
  39.   IF n=0 THEN
  40.    cursorx:=cursorx+String.Length(a);
  41.   ELSE
  42.    cursorx:=0;
  43.   END;
  44.  END Print;
  45.  
  46.  
  47.  
  48. PROCEDURE PrintAtC(cx,cy: INTEGER; c: CHAR);
  49.  VAR
  50.   a: ARRAY[0..1] OF CHAR;
  51.  BEGIN
  52.   cursorx:=cx;
  53.   cursory:=cy;
  54.   a[0]:=c;
  55.   a[1]:=ASCII.nul;
  56.   Print(a,0);
  57.  END PrintAtC;
  58.  
  59.  
  60.  
  61. PROCEDURE PrintAtS(cx,cy: INTEGER; a: ARRAY OF CHAR);
  62.  BEGIN
  63.   cursorx:=cx;
  64.   cursory:=cy;
  65.   Print(a,0);
  66.  END PrintAtS;
  67.  
  68.  
  69.  
  70. PROCEDURE ClrLine(l: INTEGER);
  71.  BEGIN
  72.   PrintAtS(0,l,spcs);
  73.   cursorx:=0;
  74.  END ClrLine;
  75.  
  76.  
  77.  
  78. PROCEDURE Cls;
  79.  BEGIN
  80.   GraphicsL.Move(IntuiIO.ScreenRastPort(CPCGlobal.screen),0,10);
  81.   GraphicsL.ClearScreen(IntuiIO.ScreenRastPort(CPCGlobal.screen));
  82.   cursorx:=0;
  83.   cursory:=0;
  84.   IntuitionL.ShowTitle(SYSTEM.CAST(IntuitionD.ScreenPtr,CPCGlobal.screen),TRUE);
  85.  END Cls;
  86.  
  87.  
  88.  
  89. PROCEDURE ShowAll;
  90.  VAR
  91.   xloop,yloop: INTEGER;
  92.   line: CPCGlobal.LString;
  93.  BEGIN
  94.   FOR yloop:=1 TO CPCGlobal.ymax DO
  95.    FOR xloop:=1 TO CPCGlobal.xmax DO
  96.     IF (CPCGlobal.text[xloop,yloop]=ASCII.nul) THEN
  97.      line[xloop-1]:=CPCGlobal.blankC;
  98.     ELSE
  99.      line[xloop-1]:=CPCGlobal.text[xloop,yloop];
  100.     END;
  101.    END;
  102.    line[xloop-1]:=ASCII.nul;
  103.    GraphicsL.SetAPen(CPCGlobal.rastport,1);
  104.    GraphicsL.SetFont(CPCGlobal.rastport,crossfont);
  105.    IntuiIO.Print(CPCGlobal.window,line,0,(yloop-1)*smallysize+CPCGlobal.yoff);
  106.   END;
  107.  END ShowAll;
  108.  
  109.  
  110.  
  111. PROCEDURE SmallPrintAtS(x,y: INTEGER; s: ARRAY OF CHAR);
  112.  BEGIN
  113.   GraphicsL.SetAPen(CPCGlobal.rastport,1);
  114.   GraphicsL.SetFont(CPCGlobal.rastport,crossfont);
  115.   IntuiIO.Print(CPCGlobal.window,s,x*smallxsize,
  116.                 y*smallysize+CPCGlobal.yoff);
  117.  END SmallPrintAtS;
  118.  
  119.  
  120.  
  121. PROCEDURE SmallPrintAtC(x,y: INTEGER; c: CHAR);
  122.  VAR
  123.   str: ARRAY[0..1] OF CHAR;
  124.  BEGIN
  125.   str[0]:=c;
  126.   str[1]:="\o";
  127.   SmallPrintAtS(x,y,str);
  128.  END SmallPrintAtC;
  129.  
  130.  
  131.  
  132. PROCEDURE CharPos(VAR cx,cy: INTEGER);
  133.  BEGIN
  134.   cx:=(cx DIV smallxsize);
  135.   cy:=((cy-CPCGlobal.yoff) DIV smallysize);
  136.   IF (cx<0) OR (cx>CPCGlobal.xmax-1) THEN
  137.    cx:=-1;
  138.    cy:=-1;
  139.   END;
  140.   IF (cy<0) OR (cy>CPCGlobal.ymax-1) THEN
  141.    cx:=-1;
  142.    cy:=-1;
  143.   END;
  144.  END CharPos;
  145.  
  146.  
  147.  
  148. BEGIN
  149.  IF NOT initialized THEN
  150.   initialized:=TRUE;
  151.   crossfont:=CrossFont.CreateFont();
  152.  END;
  153.  cursorx:=0;
  154.  cursory:=0;
  155. END CPCPrint.
  156.